/**
 * 选择部门插件
 * Created by wuwt on 2015/7/28.;
 * 使用说明：在需要弹出选择部门窗口的标签加上 onclick="checkDept_showModal();"
 * 确认选择部门按钮事件需要在使用的页面上实现如下方法:
    function checkDept_enter(){
        var checkDeptIds = $("#checkDept_deptIds").val();//选择的部门id字符串集合
        if(checkDeptIds != ""){
            //根据id集合查询部门信息
            $.post(getDepartmentListByIds_url,{"departmentIds":checkDeptIds},function(data){
                var departmentList = data;
                var department = departmentList[0];
                var departmentId = department.departmentId;
                var departmentNum= department.departmentNum;//部门编号
                var departmentName = department.departmentName;//部门名称
                var path = department.path;//层级路径
                var parentId = department.parentId;//上级部门id
                var parentName = department.parentName;//上级部门名称
                ...
            })
        }
        //关闭选择人员窗口
        checkDept_closeModal();
    }
 */
var checkDepartmentPage_url = "/osm/controller/department/checkDepartmentPage";//选择部门窗口页面加载地址(不能跨域)
var getDepartmentListByIds_url = "/osm/controller/user/getDepartmentListByIds";//查询部门信息列表请求地址
$(function(){
    var div = '<div id="loadCheckDeptDiv"></div>';
    $("#mainScroll").after(div);
    checkDept_loadModal();
})

//加载选择部门窗体组件
function checkDept_loadModal(){
    $("#loadCheckDeptDiv").load(checkDepartmentPage_url);
}

//打开选择部门窗口
function checkDept_showModal(){
    $("#checkDept_modal").modal("show");
}

//关闭选择部门窗口
function checkDept_closeModal(){
    $("#checkDept_modal").modal("hide");
}

//点击树形节点回调方法
function checkDept_check(event, treeId, treeNode){
    var zTree = $.fn.zTree.getZTreeObj(treeId);
    var childNodes = zTree.transformToArray(treeNode);
    var checkDeptArray = $("#checkDept_deptIds").val().split(",");
    var checkDeptStr="";
    $.each(childNodes,function(i,childNode){
        if(!childNode.isParent){
            var id = childNode.id;
            if($.inArray(id,checkDeptArray) < 0){
                checkDeptArray.push(id);
                var name = childNode.name;
                checkDeptStr+='<li class="ms-elem-selection ms-selected" style="display: list-item;" id="checkDept_'+id+'" onclick=checkDept_remove("'+id+'")><span>'+name+'</span></li>';
            }
        }
    });
    $("#checkDept_deptIds").val(array_remove("",checkDeptArray));
    $("#checkDept_deptList").append(checkDeptStr);
}

//移除已选部门
function checkDept_remove(id){
    $("#checkDept_"+id).remove();
    var checkDeptArray = $("#checkDept_deptIds").val().split(",");
    $("#checkDept_deptIds").val(array_remove(id,checkDeptArray));
}

//数组移除某一项
function array_remove(value,array){
    var newArray = new Array();
    $.each(array,function(i,item){
        if(item != value){
            newArray.push(item);
        }
    })
    return newArray;
}